<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        .p1 {
            color: red;
            background-color: lightpink;
        }

        .p2 {
            color: green;
            background-color: greenyellow;
        }

        .p3 {
            color: blue;
            background-color: lightgreen;
        }

        .p1,
        .p2,
        .p3 {
            width: 50%;
        }
    </style>

</head>

<body>

    <div>
        <p>static</p>
        <p class="p1">paragraph1</p>
        <p class="p2" style="position: static; left: 10px; top: 10px;">paragraph2</p>
        <p class="p3">paragraph3</p>
    </div>

</body>

</html>

<!-- CSS 布局 -->
<!-- https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout -->

<!-- 定位 -->
<!-- 定位允许您从正常的文档流布局中取出元素，并使它们具有不同的行为，例如放在另一个元素的上面，或者始终保持在浏览器视窗内的同一位置。 -->
<!-- 静态定位 -->
<!-- https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Positioning#%E9%9D%99%E6%80%81%E5%AE%9A%E4%BD%8D -->
<!-- 静态定位是每个元素获取的默认值——它只是意味着“将元素放入它在文档布局流中的正常位置 ——这里没有什么特别的。 -->
<!-- 相对定位 -->
<!-- https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Positioning#%E7%9B%B8%E5%AF%B9%E5%AE%9A%E4%BD%8D -->
<!-- 相对定位是我们将要看的第一个位置类型。 它与静态定位非常相似，占据在正常的文档流中，除了你仍然可以修改它的最终位置，包括让它与页面上的其他元素重叠。 -->
<!-- 绝对定位 -->
<!-- https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Positioning#absolute_positioning -->
<!-- 首先，请注意，定位的元素应该在文档流中的间隙不再存在——第一和第三元素已经靠在一起，就像第二个元素不再存在！ -->
<!-- 第二，注意元素的位置已经改变——这是因为top，bottom，left和right以不同的方式在绝对定位。 -->
<!-- 固定定位 -->
<!-- 这与绝对定位的工作方式完全相同，只有一个主要区别：绝对定位固定元素是相对于 <html> 元素或其最近的定位祖先，而固定定位固定元素则是相对于浏览器视口本身。 -->



<!-- position -->
<!-- https://developer.mozilla.org/zh-CN/docs/Web/CSS/position -->
<!-- static -->
<!-- 该关键字指定元素使用正常的布局行为，即元素在文档常规流中当前的布局位置。此时 top, right, bottom, left 和 z-index 属性无效。 -->
<!-- relative -->
<!-- 该关键字下，元素先放置在未添加定位时的位置，再在不改变页面布局的前提下调整元素位置（因此会在此元素未添加定位时所在位置留下空白）。position:relative 对 table-*-group, table-row, table-column, table-cell, table-caption 元素无效。 -->
<!-- absolute -->
<!-- 元素会被移出正常文档流，并不为元素预留空间，通过指定元素相对于最近的非 static 定位祖先元素的偏移，来确定元素位置。绝对定位的元素可以设置外边距（margins），且不会与其他边距合并。 -->
<!-- fixed -->
<!-- 元素会被移出正常文档流，并不为元素预留空间，而是通过指定元素相对于屏幕视口（viewport）的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。打印时，元素会出现在的每页的固定位置。fixed 属性会创建新的层叠上下文。当元素祖先的 transform, perspective 或 filter 属性非 none 时，容器由视口改为该祖先。 -->